package com.ruoyi.system.domain.college.Statistics;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 科研经费与成果统计数据对象 research_statistics
 * 
 * @author ruoyi
 * @date 2025-11-24
 */
public class ResearchStatistics extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID（自增唯一标识） */
    private Integer id;

    /** 年度（如：2023、2024） */
    @Excel(name = "年度", readConverterExp = "如=：2023、2024")
    private Long year;

    /** 到账科研经费（万元） */
    @Excel(name = "到账科研经费", readConverterExp = "万=元")
    private BigDecimal arrivedResearchFund;

    /** 纵向到账经费（万元） */
    @Excel(name = "纵向到账经费", readConverterExp = "万=元")
    private BigDecimal verticalArrivedFund;

    /** 横向到账经费（万元） */
    @Excel(name = "横向到账经费", readConverterExp = "万=元")
    private BigDecimal horizontalArrivedFund;

    /** 立项科研经费（万元） */
    @Excel(name = "立项科研经费", readConverterExp = "万=元")
    private BigDecimal approvedResearchFund;

    /** 纵向立项经费（万元） */
    @Excel(name = "纵向立项经费", readConverterExp = "万=元")
    private BigDecimal verticalApprovedFund;

    /** 横向立项经费（万元） */
    @Excel(name = "横向立项经费", readConverterExp = "万=元")
    private BigDecimal horizontalApprovedFund;

    /** 国家级课题立项数 */
    @Excel(name = "国家级课题立项数")
    private Integer nationalProjectCount;

    /** 省部级课题立项数 */
    @Excel(name = "省部级课题立项数")
    private Integer provincialProjectCount;

    /** 出版著作数 */
    @Excel(name = "出版著作数")
    private Integer publishedWorksCount;

    /** 发表论文数 */
    @Excel(name = "发表论文数")
    private Integer publishedPapersCount;

    /** 发表C刊数 */
    @Excel(name = "发表C刊数")
    private Integer publishedCJournalCount;

    /** 成果获奖数 */
    @Excel(name = "成果获奖数")
    private Integer achievementAwardCount;

    public void setId(Integer id) 
    {
        this.id = id;
    }

    public Integer getId() 
    {
        return id;
    }

    public void setYear(Long year) 
    {
        this.year = year;
    }

    public Long getYear() 
    {
        return year;
    }

    public void setArrivedResearchFund(BigDecimal arrivedResearchFund) 
    {
        this.arrivedResearchFund = arrivedResearchFund;
    }

    public BigDecimal getArrivedResearchFund() 
    {
        return arrivedResearchFund;
    }

    public void setVerticalArrivedFund(BigDecimal verticalArrivedFund) 
    {
        this.verticalArrivedFund = verticalArrivedFund;
    }

    public BigDecimal getVerticalArrivedFund() 
    {
        return verticalArrivedFund;
    }

    public void setHorizontalArrivedFund(BigDecimal horizontalArrivedFund) 
    {
        this.horizontalArrivedFund = horizontalArrivedFund;
    }

    public BigDecimal getHorizontalArrivedFund() 
    {
        return horizontalArrivedFund;
    }

    public void setApprovedResearchFund(BigDecimal approvedResearchFund) 
    {
        this.approvedResearchFund = approvedResearchFund;
    }

    public BigDecimal getApprovedResearchFund() 
    {
        return approvedResearchFund;
    }

    public void setVerticalApprovedFund(BigDecimal verticalApprovedFund) 
    {
        this.verticalApprovedFund = verticalApprovedFund;
    }

    public BigDecimal getVerticalApprovedFund() 
    {
        return verticalApprovedFund;
    }

    public void setHorizontalApprovedFund(BigDecimal horizontalApprovedFund) 
    {
        this.horizontalApprovedFund = horizontalApprovedFund;
    }

    public BigDecimal getHorizontalApprovedFund() 
    {
        return horizontalApprovedFund;
    }

    public void setNationalProjectCount(Integer nationalProjectCount) 
    {
        this.nationalProjectCount = nationalProjectCount;
    }

    public Integer getNationalProjectCount() 
    {
        return nationalProjectCount;
    }

    public void setProvincialProjectCount(Integer provincialProjectCount) 
    {
        this.provincialProjectCount = provincialProjectCount;
    }

    public Integer getProvincialProjectCount() 
    {
        return provincialProjectCount;
    }

    public void setPublishedWorksCount(Integer publishedWorksCount) 
    {
        this.publishedWorksCount = publishedWorksCount;
    }

    public Integer getPublishedWorksCount() 
    {
        return publishedWorksCount;
    }

    public void setPublishedPapersCount(Integer publishedPapersCount) 
    {
        this.publishedPapersCount = publishedPapersCount;
    }

    public Integer getPublishedPapersCount() 
    {
        return publishedPapersCount;
    }

    public void setPublishedCJournalCount(Integer publishedCJournalCount) 
    {
        this.publishedCJournalCount = publishedCJournalCount;
    }

    public Integer getPublishedCJournalCount() 
    {
        return publishedCJournalCount;
    }

    public void setAchievementAwardCount(Integer achievementAwardCount) 
    {
        this.achievementAwardCount = achievementAwardCount;
    }

    public Integer getAchievementAwardCount() 
    {
        return achievementAwardCount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("year", getYear())
            .append("arrivedResearchFund", getArrivedResearchFund())
            .append("verticalArrivedFund", getVerticalArrivedFund())
            .append("horizontalArrivedFund", getHorizontalArrivedFund())
            .append("approvedResearchFund", getApprovedResearchFund())
            .append("verticalApprovedFund", getVerticalApprovedFund())
            .append("horizontalApprovedFund", getHorizontalApprovedFund())
            .append("nationalProjectCount", getNationalProjectCount())
            .append("provincialProjectCount", getProvincialProjectCount())
            .append("publishedWorksCount", getPublishedWorksCount())
            .append("publishedPapersCount", getPublishedPapersCount())
            .append("publishedCJournalCount", getPublishedCJournalCount())
            .append("achievementAwardCount", getAchievementAwardCount())
            .toString();
    }
}
